package main

import (
	"crypto/hmac"
	"crypto/sha256"
	"encoding/hex"
	"fmt"
)

func main() {
	message := "Hello, world!" // 要进行认证的消息
	secretKey := "mysecretkey" // 密钥

	// 创建HMAC对象，使用SHA-256哈希算法和密钥
	h := hmac.New(sha256.New, []byte(secretKey))

	// 将消息添加到HMAC对象中
	h.Write([]byte(message))
	//io.WriteString(h, message)

	// 计算消息的认证码
	// Sum(nil) 表示将认证码作为字节切片返回
	authCode := h.Sum(nil)

	// 将认证码转换为16进制字符串
	authCodeString := hex.EncodeToString(authCode)

	fmt.Println("Message:", message)
	fmt.Println("HMAC Auth Code:", authCodeString)
}
